在幾次閒談與偶然之中,被拉入伙,開始了這個說做就做的 project。
搜尋引擎,是一個已經融入我們日常生活的工具,
然而,對於許多人而言,它可能如同一個黑盒子,
想要研究卻無從著手。
個人在研究所時,是做 自然語言處理 (NLP) 相關研究,
工作這幾年也是與 搜尋引擎 相關。
希望能透過這次的機會,能分享一些相關經驗。
本篇文章面向 初學者,也較著重 實作。
在 NLP
與 後端
的部分提供 jupyter notebook 與測試資料,
希望能有更好的互動性,並使內容更加容易理解。
本次的文章、實作皆是與 Hello Kirby 合作完成
個人(tainvecs) 負責 後端
與 搜尋引擎
的部分
Kirby 負責 前端
與 爬蟲
。
本次系列的實作與文章也會同步更新於此 Github.
實作的結果也可以從 Over Engineering 上看到。
內容中,如有不足之處,還請不吝指教。
在還沒有認識 NLP 之前,我一直以為 AI 是一個神話。
但沒想到它早已被實踐在我們的日常生活中,
我們每天在用的 Google 背後的真正價值是 AI 算法。
非常感謝,這次的合作讓我打開了狹隘的視野。by Hello Kirby
如果你對於:
搜尋引擎
。這些議題有興趣的讀者,非常適合閱讀這個系列。
本次文章預設讀者對於搜尋引擎
的部分為零基礎,
期望能以更佳淺顯易懂的方式介紹搜尋引擎
與NLP
。
tainvecs: 看看 Kirby 的
動機
與期望目標
寫的多麽冠冕堂皇。TLDR: IT 邦的搜尋引擎讓人用得有點 $#^&@,
所以我們想做一個看看,結果發現其實也不容易?。
IT 邦幫忙 是台灣最有名的軟體工程知識平台之一,
其中,每年最盛大的事件就是 IT 鐵人賽,
並力邀眾多的工程師連發 30 天的文章。
一篇有用的文章,可以幫助到成千上百的工程師,
但實際上是有點難在 IT 幫上找到方案,
這也是我們主要要優化的問題 搜尋功能 跟 用戶體驗。
我們也對產業趨勢有濃厚的興趣,
在台灣的社群中,要取得客觀又具公信力的資訊實屬不易。
因此,專案的另一個主題便是藉由分析 IT 邦的文章來取得 統計資料,
或許可以幫助開發者了解產業,也能提供一些方向給教育者跟內容創作者。
我們試圖打造出 提供用戶 有用的資訊 且 良好的使用者體驗 的搜尋引擎。
這次的合作也讓我們重新體會到,從頭規劃及開發一個產品的樂趣與不易。
技術上,我 與 Kirby 都選擇了與工作上幾乎完全不同的技術棧。
一方面,也算是對自己的挑戰及同時享受過程中的學習。
像是:remix、deno、meilisearch、keybert、flask、github action、fly.io 及 supabase,
都是我們實作過程中認識的新玩具。
另一方面,考量到如何簡化整體產品的複雜程度,
如:選擇更加容易上手的搜尋引擎 meilisearch。
我們在業餘前提下,深刻的體會到在現實跟理想的差距。
很多預定想完成的目標,礙於有限時間與精力沒能完全達成。
然而,在取捨之中,我們也意識到專案管理這個角色的價值。
很多經驗,也是只有真槍實彈的做專案才知道。
礙於時間未能完成得部分,在最後若篇幅允許,
也會放上被廣泛使用或可能可行的做法。
tainvecs: 我絕對不會告訴你,當初我在寫碩士論文的時候,問學長 future work 要怎麼寫?
學長:反正就把你所有沒時間做或做不到的事都寫上去就對了!?